TechHQ首席架构师浓缩1000小时的项目经验总结出5大技能点,架构师必看!
"成功不是结局,失败也不是灾难:重要的是要有继续下去的勇气。"——温斯顿 丘吉尔
自从我开始担任TechHQ的首席架构师以来,我已经设计了至少十几个区块链应用程序了。我入职后的第一项任务是写一篇关于作为架构师如何开始学习区块链技术的文章。
到目前为止,这仍然是我写过的最受欢迎的文章,但现在是时候写它的第二部分了。之前的文章浓缩了80个小时的经验,而这一篇则浓缩了超过1000小时的经验。
(参考链接:https://hackernoon.com/becoming-a-blockchain-architect-in-10-steps-b5945701e9cd)
继续读下去,你就会得到这个问题的答案:一个项目从概念到实施阶段,将商业理念转化为技术解决方案时,最有用的技能是什么?
作为一名区块链架构师,我到底在做什么?
事实上,有许多不同类型的软件架构角色,但我会对我的角色进行这样的描述:
“我是架于商业和技术之间的桥梁。我通过和业务部门沟通来了解他们的需求,然后通过和技术部门沟通来了解这些需求是否可行。之后,我再向业务部门提供使用可行技术的建议,并通过不断协商,最终找到双方都可接受的解决方案。在实施过程中,随着新挑战的出现,我会不断改进这一想法。”
向双方专家学习;
向对方的利益相关者解释你学到的内容;
提出解决方案;
返回第1步;
作为TechHQ的架构师,我碰巧了解很多有关区块链的知识,但是如果具体到每个项目来说,我还是要学习一些新的概念。比如这个月我了解了联合国开发计划署如何向贫困人口提供服务,以及如何进行原子交换。
还是那句话:了解很多有关技术或业务的知识确实是会有帮助的,但架构师真正做的是理解和沟通。
这种不断学习和提出建议的过程也意味着大多数时候都是错误的。只有在多次错误之后,你才能学到足够多的知识,并提出一个真正合适的解决方案。
如果你想成为一名成功的架构师,你必须专注于学习广泛的学科,了解别人,并让别人了解你。
在过去的一年里,我学到了很多关于区块链的知识,同时我也学会了如何在一个新的领域里成为一名更好的架构师。
如果有一天我决定成为一名机器学习架构师,我也会遵循同样的道路。我会重点关注五个方面:
不断地迎接新挑战; 主动接触各种技术专家; 获取近期业务所需的实践技术知识; 从每个项目中抽象提取高级模型; 记录下你学到的一切;
或许你不一定经常有这样的机会,但我却时常要面对这样的状况。我在TechHQ的合作伙伴总忙于各种会议和企业圈,这就意味着我要不断充实、具体化自己的项目。
从最初繁琐复杂的“这些人想要建立他们自己的区块链平台和人工智能建模的共识算法”明确到“他们想要建立一个拥有自己加密货币的线上食品市场”。
其中项目中很多都没有经过概念阶段,但所有的项目对我来说都是有用的。我很看重生产力,总是把自己完成每项任务的时间记录下来。在第一个项目中我需要花费24个小时才能完成的工作在几个月后只需要4个小时就能完成。
这些都是我在训练中遇到的最棒的事情:
我了解了一个业务用例是否可以使用区块链来完成;
我了解了怎样的区块链技术是可以成熟运作的,怎样的是不能运作的;
我学会了辨别模型并用它们来快速提出解决方案;
我学会了在写作中什么时候要注重说服力,什么时候要注重准确性;
我认识了很多人,可以向他们请教我没学过的东西;
如果你很幸运地遇到了很多挑战,那么你应该欣然接受。如果你的工作是负责单一产品,那你需要付出额外的努力并设法吸收额外的知识。
时刻保持学习的你
2、主动接触各种技术专家
区块链基础设施:我开始学习很多有关区块链基础设施的知识。比特币、Ethereum、Hyperledger、Quorum、Corda以及很多其他项目都属于这个领域。在去年的大部分时间里,我都在做有关Ethereum或Quorum的工作,偶尔也有Hyperledger的项目。现在我认为,对于其他平台有个大致的了解并且在基础设施层面有人可以交流就足够了。接下来的几年会发生很多事情,因此你需要为最终的重大发展做好准备。
区块链开发工具:在此,我学到了如何在基础层面上使用metamask, ganache和truffle工作,仅此而已。在一个项目中,你需要的远不止这些,我很感激我有Bernardo Vieira ,他好像知道一切都是如何运作的,而且能一直提出很酷的东西(solviz, soldoc)。如果你要编码,你需要以某种方式填补这一空白,因为工具的变化速度很快,所以这并不容易。
智能合约开发:我学会了编写智能合约,这使我对区块链机会和发展模型有了更深的了解。软件开发比开发工具或基础设施更接近于业务方面,因此如果你只能专攻一个,那我会推荐这个。 其他技术领域:云架构、网络、DevOps、测试、前端开发、用户体验、平面设计。有时你会在这方面需要一些帮助,但大多数时候,你最好让其他人来做这些必须的工作。你要专注于你能带来价值的地方。 其他项目角色:如果你(和我一样)在项目管理或团队领导方面很差劲,那就让别人来担任这些角色吧。创业公司总是资源紧张,因为这些角色与架构师的角色很接近,所以你会发现自己常常会被拉去做这些工作。如果我必须要担任一个非技术角色,我总是会选择业务分析师,因为这能帮助我更好地了解业务。
智能合约开发的一个特点就是它会迫使你生成简单代码,至少在Ethereum里是这样的。在大多数区块链解决方案中,智能合约会比代码的十分之一还要少。我发现这使得编写智能合约比编写普通软件还要容易,因为一旦编写了一个小核心,其余部分就会被转移到前端。
我很适合做架构师,因为我可以编写紧凑的概念论证来实现解决方案的商业理念,并且在生产中基本保持不变。编写代码非常耗时,所以我只在有时间和有项目需要的时候才去做。作为一名架构师,你的时薪很高,你需要为其提供价值。然而,编码有时是显示你对技术方面意义的最佳方式。
智能合约开发使我对staking patterns(权益模型)、tokenization(令牌化)、货币兑换、支付分配和访问控制有了更深入的了解,当我要为商业想法提出解决方案时,这些模型会一次又一次地出现。
4、抽象提取一切的高级模型
当我为上一个雇主设计解决方案架构的时候,我并没过多地考虑设计模型。我大部分时间都花在了协商如何在有众多利益冲突的情况下从A处获取数据到B处。我们需要生成模型,但是上下两个项目之间几乎没有什么是可以重复利用的。
推荐阅读:
以太坊新生合约总数骤减; 比特币大跌, 本周主链排名震荡 | 数据周榜 别让分析公司卖了你:一文读懂比特币的私密性及隐私保护 99年少年12岁时买下100枚比特币, 如今却将所有积蓄压在一个不知名的代币上,还放话将超越Libra! Dropout、梯度消失/爆炸、Adam优化算法,神经网络优化算法看这一篇就够了 只给测试集不给训练集,要怎么做自己的物体检测器? 换脸软件 ZAO 刷屏:你在玩换脸,别人想要你的脸! 华为鸿蒙为什么非要碰物联网? mysql表设计要注意什么
猛戳"阅读原文"有惊喜哟
老铁在看了吗?👇